1. Field of the Invention
This invention relates to imaging and decoding of optical codes, and particularly to imaging and decoding an optical code using first and second imaging settings and decoding the optical code using image data corresponding to the first and second imaging settings.
2. Description of the Related Art
Optical codes are patterns made up of image areas having different light reflective or light emissive properties, which are typically assembled in accordance with a priori rules. The optical properties and patterns of optical codes are selected to distinguish them in appearance from the background environments in which they are used. A barcode is an optical code having a pattern of variable-width rectangular bars separated by fixed or variable width spaces. The bars and spaces have different light reflecting characteristics. One example of a one dimensional barcode is the UPC/EAN code used to identify, for example, product inventory. An example of a two-dimensional or stacked barcode is the PDF417 barcode. A description of PDF417 barcode and techniques for decoding it are disclosed in U.S. Pat. No. 5,635,697 to Shellhammer et al., and assigned to Symbol Technologies, Inc., which is incorporated herein by reference in its entirety. Another conventional optical code is known as “MaxiCode”. It consists of a central finder pattern or bull's eye center and a grid of hexagons surrounding the central finder. Another type of optical code is a code formed of one or more symbols, where the individual symbols are identified by optical character recognition (OCR). Optical codes can be used as a rapid, generalized means of data entry, for example, by reading a target barcode from a printed listing of many barcodes.
Devices for identifying or extracting data from optical codes are sometimes referred to as “optical code readers” of which barcode scanners are one type. Most conventional optical scanning systems are designed to read one-dimensional barcode symbols. Optical code readers are used in both fixed and portable installations in many diverse environments such as in stores for check-out services, in manufacturing locations for work flow and inventory control and in transport vehicles for tracking package handling. In some uses, the optical code reader is connected to a portable data processing device or a data collection and transmission device. Frequently, the optical code reader includes a handheld sensor which is manually directed at a target code.
Optical codes can also be read by employing optical code readers having an imaging engine. An imaging engine includes an image sensor having a two-dimensional array of cells or photo sensors, such as an area charge coupled device (CCD), a lens assembly for focusing light incident on the image sensor and associated circuitry coupled to the image sensor for processing electronic signals generated by the image sensor. Each photo sensor senses the incident light and generates an electrical signal, known as a pixel signal that corresponds to the sensed light. The array of photo sensors thus generates a two-dimensional array of pixel signals, known as pixel data or image data which corresponds to an image in a field of view of the engine.
The image data is provided to a processor that executes decoding software for decoding the image data and outputting a decoded code that corresponds to the image data. The quality of the image data for achieving accuracy during decoding for obtaining an accurate decoded code is dependent upon variables such as the degree of focusing, exposure, gain control and illumination achieved by the imaging engine, as well as other factors, such as environmental conditions including illumination, air purity, etc. Unsuccessful reads result when the quality of image data is lacking and the decoding software is unable to accurately decode the image data.
In applications where optical codes are read and decoded quickly, such as in rapid succession, if the time consumed for receiving the image data, processing the image data, decoding the image data and outputting the decoded code exceeds the time interval until a next set of image data is received, a possibility exists for one or more unsuccessful reads, such as misreads or no reads to occur.
In order to improve quality of the image data, conventional optical code readers having imaging engines may make a determination if the number of occurrences of unsuccessful reads exceeds a predetermined threshold, and if so, may determine the cause and take appropriate action. However, the code may have to be re-imaged after the determination and appropriate action have been performed, resulting in a repetitious and lengthy procedure.
Accordingly, it is an object of the present invention to provide a system and method for decreasing the time for imaging and decoding an optical code and preventing unsuccessful reads and no reads.
It is a further object of the present invention to provide a system and method for consecutively imaging each optical code twice using at least two different imaging settings for generating corresponding first and second sets of image data, and using the set of image data having a better decodability quality for decoding the optical code.